package com.ruicar.afs.cloud.manage.common.condition;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruicar.afs.cloud.common.modules.contract.enums.ContractStatusEnum;
import com.ruicar.afs.cloud.manage.common.entity.ManagePrepaymentApply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * @ClassName StaySettleCondition
 * @Description: 待结清任务池查询条件
 * @Author zyr
 * @Date 2020/6/18
 * @Version V1.0
 **/
@Data
public class ManagePrepaymentApplyCondition extends ManagePrepaymentApply {

    @ApiModelProperty("每页大小")
    private int pageSize;

    @ApiModelProperty("当前页数")
    private int pageNumber;

    @ApiModelProperty("合同状态")
    private ContractStatusEnum contractStatus;

    @ApiModelProperty("经销商")
    private String dealerName;

    @ApiModelProperty("产品名称")
    private String productName;

    @ApiModelProperty("合同利率")
    private Integer settleRate;

    @ApiModelProperty("请求日期")
    private Date requestDate;

    @ApiModelProperty("提前终止原因")
    private String endReason;

    @ApiModelProperty("还款方式")
    private String repaymentMethod;

    @ApiModelProperty("申请ID")
    @JsonSerialize(using = ToStringSerializer.class)
    @JSONField(serializeUsing = com.alibaba.fastjson.serializer.ToStringSerializer.class)
    private Long applyId;

    /** 审批结果 */
    @ApiModelProperty("审批结果")
    private String approvalOperating;
    /** 审批意见 */
    @ApiModelProperty("审批意见")
    private String approvalOpinion;
    /** 原因类型 */
    @ApiModelProperty("原因类型")
    private String reasonType;
    /** 业务类型;枚举值：合同取消、身份信息变更、联系方式变更、银行卡变更、还款日变更、资产信息变更、对公还款、合同重出、溢缴款退款、延期申请、提前结清、展期 */
    @ApiModelProperty("业务类型")
    private String contractBusiness;
    /** 处理人员 */
    @ApiModelProperty("处理人员")
    private String processPerson;

    @ApiModelProperty("申请时间")
    private String[] prepaymentRequestTimeQuery;
    @ApiModelProperty("结束时间")
    private String[] prepaymentApprovedTimeQuery;

}
